﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TwojeFinanse
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Lokaty lokaty;
        private Kredyty kredyty;
        private Procent procent;

        public bool initLokaty()
        {
            double oprocentowanie;
            double okres;
            double kapitalPoczatkowy;
            double dokladanie;
            double okresDokladania;

            if (!Double.TryParse(textBox1.Text, out oprocentowanie)) //oprocentowanie
            {
                MessageBox.Show("Błędne oprocentowanie!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Double.TryParse(textBox2.Text, out okres)) //okres
            {
                MessageBox.Show("Błędny okres!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Double.TryParse(textBox3.Text, out kapitalPoczatkowy)) //kapitalPoczatkowy
            {
                MessageBox.Show("Błędny kapitalPoczatkowy!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Double.TryParse(textBox4.Text, out dokladanie)) //dokladanie
            {
                MessageBox.Show("Błędne dokladanie!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Double.TryParse(textBox5.Text, out okresDokladania)) //okresDokladania
            {
                MessageBox.Show("Błędny okresDokladania!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            lokaty = new Lokaty(oprocentowanie, okres, kapitalPoczatkowy, dokladanie, okresDokladania);

            return true;
        }

        public bool initKredyty()
        {
            double oprocentowanie;
            int liczbaRat;
            double kwota;
            if (!Double.TryParse(textBox12.Text, out oprocentowanie)) //oprocentowanie
            {
                MessageBox.Show("Błędne oprocentowanie!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Int32.TryParse(textBox13.Text, out liczbaRat)) //liczbaRat
            {
                MessageBox.Show("Błędna liczbaRat!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Double.TryParse(textBox11.Text, out kwota)) //kwota
            {
                MessageBox.Show("Błędna kwota!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            kredyty = new Kredyty(oprocentowanie, liczbaRat, kwota);

            return true;
        }

        public bool initProcent()
        {
            double oprocentowanie;
            double okres;
            if (!Double.TryParse(textBox15.Text, out oprocentowanie)) //oprocentowanie
            {
                MessageBox.Show("Błędne oprocentowanie!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (!Double.TryParse(textBox16.Text, out okres)) //liczbaRat
            {
                MessageBox.Show("Błędny okres!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            procent = new Procent(oprocentowanie, okres);

            return true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
            textBox6.Text = "";
            textBox7.Text = "";
            textBox8.Text = "";
            textBox9.Text = "";
            textBox10.Text = "";
            Application.DoEvents();

            if (!initLokaty()) return;

            lokaty.licz(radioButton2.Checked);

            textBox6.Text = String.Format("{0:.00}", lokaty.zainwestowanyKapital);
            textBox7.Text = String.Format("{0:.00}", lokaty.zysk);
            textBox8.Text = String.Format("{0:.00}", lokaty.podatek);
            textBox9.Text = String.Format("{0:.00}", lokaty.zyskKoncowy);
            textBox10.Text = String.Format("{0:.00}", lokaty.zyskPoOpodatkowaniu);

            richTextBox1.Text = lokaty.text;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox14.Text = "";
            richTextBox2.Text = "";           

            if (!initKredyty()) return;
                      
            kredyty.licz(radioButton3.Checked);

            textBox14.Text = String.Format("{0:.00}", (kredyty.splaconyKredyt + kredyty.splaconeOdsetki));
            richTextBox2.Text = kredyty.podsumowanie;                     
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox17.Text = "";
            if (!initProcent()) return;

            procent.liczOkres();
            textBox17.Text = String.Format("{0:.00}", procent.procentOkres);
        }
    }
}
